//Webapp名称
const WEBAPP = getWebRootPath();
//是否开发模式
const IS_DEBUG = false;

//form序列化为json
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

//获取url后的参数值
function getUrlParam(key) {
	var href = window.location.href;
	var url = href.split("?");
	if(url.length <= 1){
		return "";
	}
	var params = url[1].split("&");
	
	for(var i=0; i<params.length; i++){
		var param = params[i].split("=");
		if(key == param[0]){
			return param[1];
		}
	}
}

// 检查登录状态
function loginInfo(){
	var user = "";
    ajax({
        type : 'get',
        url : '/sys/login',
        async: false,
        success : function(data){
            if(data != null && data != ""){
                user = data;
            }
        },
        error: function(xhr,textStatus,errorThrown){
            var msg = xhr.responseText;
            var response = JSON.parse(msg);
            $("#info").html(response.message);
        }
    });
    
    return user;
}

/**
 * 封装ajax
 * @param {Object} param ajax参数
 * @param {Function} successCallback 后台成功回调（20-09-04废弃）
 * @param {Function} failCallback 后台失败回调（20-09-04废弃）
 * @param {Function} errorCallback 请求出错回调（20-09-04废弃）
 * @param {Function} completeCallback 完成请求回调（不管成功还是失败都会执行）（20-09-04废弃）
 */
function ajax(param){
    //请求地址处理
    if (param.url.indexOf(WEBAPP) === -1) {
        param.url = WEBAPP + param.url
    }
    //封装ajax success回调
    var success = param.success;
    param.success = function(res){
        success && success(res);
        IS_DEBUG && console.log("success: " + JSON.stringify(res));
    };
    //封装ajax error回调
    var error = param.error;
    param.error = function(xhr, textStatus, errorThrown){
        var responseText = xhr.responseText;
        var res = JSON.parse(responseText);
        error && error(xhr, textStatus, errorThrown);
        //统一异常处理
        if (res.code === 400) {
            layer && layer.msg(message);
        } else if (res.code === 401) {
            layer && layer.msg('未登录');
        } else if (res.code === 403) {
            console.error("未授权:" + message);
            layer && layer.msg('未授权');
        } else if (res.code === 500) {
            layer && layer.msg('系统错误');
        }
        IS_DEBUG && console.log("error: " + JSON.stringify(res));
    };
    $.ajax(param);
}

function getWebRootPath() {
    var webRoot = document.location.href;
    webRoot = webRoot.substring(webRoot.indexOf('//')+2, webRoot.length);
    webRoot = webRoot.substring(webRoot.indexOf('/')+1, webRoot.length);
    webRoot = webRoot.substring(0,webRoot.indexOf('/'));
    var rootpath = "/" + webRoot;
    return rootpath;
}